package com.graduation.check.dto;

import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class TeacherStatisticsResponse {
    private BasicStats basicStats;
    private RiskAnalysis riskAnalysis;
    private List<MajorDistribution> majorDistribution;
    private List<ClassDistribution> classDistribution;
    private RecentActivity recentActivity;

    @Data
    public static class BasicStats {
        private Integer totalStudents;
        private Integer activeStudents;
        private Integer totalSubmissions;
        private Integer completedSubmissions;
        private Double avgSubmissionsPerStudent;
        private Double avgSimilarity;
        private Integer avgProcessingTime;
    }

    @Data
    public static class RiskAnalysis {
        private RiskLevel highRisk;
        private RiskLevel mediumRisk;
        private RiskLevel lowRisk;
    }

    @Data
    public static class RiskLevel {
        private Integer count;
        private Double percentage;
        private String threshold;
    }

    @Data
    public static class MajorDistribution {
        private String major;
        private Integer studentCount;
        private Integer submissionCount;
        private Double avgSimilarity;
    }

    @Data
    public static class ClassDistribution {
        private String className;
        private Integer studentCount;
        private Integer submissionCount;
        private Double avgSimilarity;
        private Double completionRate;
    }

    @Data
    public static class RecentActivity {
        private Integer todaySubmissions;
        private Integer yesterdaySubmissions;
        private Integer weekSubmissions;
        private Integer monthSubmissions;
    }
}
